With the technical progress in electronics and telecommunications, handheld devices have become smaller in size, while simultaneously incorporating extended functionality. For example, a single handheld device can now handle text messaging, electronic mail, web browsing, playing music, and mobile phone functions. Many of the aforementioned functions utilize text editing capabilities, which require the ability to enter characters in an easy and quick manner.
Character input on small form factor electronic devices may be accomplished in several different ways. Typically, character input on handheld electronic devices is performed using a physical keyboard that either plugs into the handheld device or is located on the handheld device. The physical keyboard that externally attaches to the handheld device may be a standard keyboard used for character input in personal computers and laptops. When the keyboard is located on the handheld device, the characters of the physical keyboard are typically displayed over numbers or other keys on the handheld device, such as on a mobile phone. Thus, a user may be required to press a key with the character written on it several times until the required character is displayed. Even with the inclusion of auto-complete functionality, a user often needs to select the completed word from a list of displayed words, requiring further selection steps by the user.
On some handheld devices, text entry or character input is performed using a stylus or pen to “write” on the screen of the handheld device. In this method of character input, either a user's handwriting or typed characters corresponding to symbols entered using the stylus or pen may be displayed in the resulting written message. Further, some handheld devices incorporate a virtual keyboard displayed on the display screen of the device, where characters may be selected using touch-screen functionality. Such a device also typically requires a stylus or pen for the selection of characters, and often requires the use of two hands for character input.